September 06, 2022
인프런에 함수형 프로그래밍 응용편(유인동님) 강의를 듣고 있다.
이 강의만으로 함수형 프로그래밍은 무엇인가에 대한 이해는 사실 잘 되지 않아서 다른 자료를 읽어봤는데, 이 글은 그 중 설명이 좋았던 Anjana Vakil 의 강의 내용이다.
우선 명령형 프로그래밍은 레시피대로 요리하면서 변화하는 느낌이다. 처음에 이걸 하고 그 다음에 이걸 하고 … 객체지향형 프로그래밍은 실제 사물을 본 딴 어떤 모델이 있고 그것들이 서로 상호작용할 때 유용하다. 함수형 프로그래밍은 모든 것이 함수로 이루어진다.
const name = 'Yonyas';
const greeting = "Hi, I'm ";
console.log(greeting + name); // "Hi, I'm Yonyas"
간단한 코드지만 함수를 사용해서 재사용성이 높아졌다.
function greet(name) {
return "Hi, I'm " + name;
}
greet("Yonyas");
side effect는 다음을 의미한다.
자주
사용한다.함수가 인자로 쓰이거나 함수의 return 값이 함수인 경우이다.
function makeAdjective(adjective) {
return function (string) {
return adjective + '' + string;
}
}
const coolifier = makeAdjective('cool')
coolifier('conference') // cool conference
프론트엔드에서는 처음에 말했던 객체지향의 특징(실제 사물을 본 딴 모델의 상호작용)이 적고, 데이터의 변화에 대한 추적의 용이성 때문에 객체지향형보다 함수형이 더 적합하다고 본다.